/**
 * Map
 */
const m = new Map()

// 使用嵌套数组初始化映射
const m1 = new Map([
    ["key1", "val1"],
    ["key2", "val2"],
    ["key3", "val3"]
]);
alert(m1.size); // 3
m1.set('key4', 'val4').set('key5', 'val5') // set()返回映射本身

// 使用自定义迭代器初始化映射
const m2 = new Map({
    [Symbol.iterator]: function* () {
        yield ["key1", "val1"];
        yield ["key2", "val2"];
        yield ["key3", "val3"];
    }
});
alert(m2.size); // 3

// 映射期待的键/值对，无论是否提供
const m3 = new Map([[]]);
alert(m3.has(undefined)); // true
alert(m3.get(undefined)); // undefined

for (let pair of m1.entries()) {
    alert(pair);
}
// [key1,val1]
// [key2,val2]
// [key3,val3]

